import java.util.Arrays;
import java.util.*;//通配符 - 导入这个包底下所有的类
//import java.sql.*;
//import java.util.Date;
import static java.lang.System.*;
import static java.lang.Math.*;//不提倡静态导入 - 难理解
import com.bit.demo1.Test;
/**
 * Created with IntelliJ IDEA.
 * Description: 面向对象
 * User: mac
 * Date: 2022-09-04
 * Time: 9:47
 */

//1.类存在于包(package)中,想引用包中的类必须用import;
//2.只能import包里面的类，不能import整个包
//3.util底下有很多的类，难道用.*就全部导入了吗？不是的，需要拿哪个他就导入哪个对应的类
//但这个方法不好，因为一个包底下可能会有名字相同的类，如上述操作
//4.包名必须小写
//5.包访问权限 -> 只能在当前包中使用 public private
//面向对象的基本特征：
  //1.封装：不必要公开的数据成员和方法 使用private关键字进行修饰。意义：安全性
  //2.继承：对共性的抽取。使用extens关键字进行处理的
    //意义：可以对代码进行重复使用。
    //注意：
      //1.java当中是单继承，不能同时继承多个类
      //2.子类构造的同时，要先帮助父类来进行构造
  //3.组合 - a part of 一部分  学校：学生和老师
  //4.多态：字面理解(不能讲）:一种事物多种形态，即向上转型
    //什么情况下会发生向上转型 - 动态绑定
       //1.直接赋值 - 父类引用指向子类对象
       //2.函数的参数
       //3.返回参数
//6.super:[不能出现在静态方法中]
    //1.super();//调用父类的构造方法
    //2.super.func();
    //3.super.data;

//7.关键字使用权限
    //1.public - 在哪里使用都行
    //2.private - 在类内部使用
    //3.default - 包访问权限
    //4.protected - 子类访问权限
//8.所有类，父类都默认是Object;
//9.final
    //1.final int a = 10//常量不可被修改
    //2.final class A 代表整个类不能被继承
    //3.final还可以修饰方法
public class ObjectDemo {


    public static void main4(String[] args) {
        Test test = new Test();
        //System.out.println(test.val);
    }

    public static void main3(String[] args) {
        ObjectDemo objectDemo = new ObjectDemo();
        out.println("jdasud");
        out.println(sqrt(3));//静态导入不需要写方法名
    }

    public static void main2(String[] args) {

        Date date = new Date();
    }

    public static void main1(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(Arrays.toString(array));
    }

}
